#pragma once
#include "CaelumInternal.h"
#include "CaelumExternal.h"
#include "BaseException.h"
#include "ModelData.h"

namespace Caelum {

enum ModelType
{
	MODELTYPE_BIN,
	MODELTYPE_OBJ
};

class ModelTypeNotSupportedException : public BaseException
{
public:
	ModelTypeNotSupportedException(std::wstring Msg) : BaseException(Msg) { }
};


class ModelLoader
{
private:
	std::list<ModelData::Model *> models;
protected:

public:
	ModelLoader() { }
	~ModelLoader() { }

	ModelData::Model *LoadModel(std::wstring Path);
	ModelData::Model *LoadModel(ModelType, std::wstring Path);

	void ReleaseModel(ModelData::Model *Mdl);
};

}